﻿#pragma once


#include<stdio.h>
#include<windows.h>
#include<stdbool.h>

#define WALL L'□'

typedef struct SnakeNode
{
	//坐标
	int x;
	int y;
	struct SnakeNode* next;
}SnakeNode;

//蛇的状态
enum GAME_STATUS
{
	OK,
	KILL_BY_WALL,
	KILL_BY_SELF,
	END_NORMAL
};

//蛇的移动方向
enum MOVE_DIRECTION
{
	UP,
	DOWM,
	LEFT,
	RIGHT
};

//蛇头的指针
//指向食物的指针
//蛇的状态
//蛇的移动方向
//食物的分数
//总分数
//休息时间，休息越长时间，移动速度越慢。反之，越快
typedef struct Snake
{
	SnakeNode* pSnake;//指向蛇头的指针
	SnakeNode* pFood;//指向食物的指针
	enum GAME_STATUS status;//蛇的状态
	enum MOVE_DIRECTION dir;//蛇的移动方向
	int FoodScore;//食物的分数
	int AllScore;//总分数
	int Sleep_Time;//休息时间，休息越长时间，移动速度越慢。反之，越快
}Snake;

//环境初始化
void GAMESTART(Snake* snake);

//欢迎界面
void WelcomeGame();

//光标位置
void SetPos(short x, short y);

//游戏地图
void GameMap();